
#ifndef _ascendancy_main_window_
#define _ascendancy_main_window_

#include <QMainWindow>
#include <QtGui>
#include <iostream>

#include "new_game_wizard.h"
#include "game_core.h"
#include "game_params.h"
#include "tab_set.h"
#include "dock_commands.h"
#include "game_tool_bar.h"

class		QAction;
class		QMenu;
class		QTextEdit;

class		MainWindow : public QMainWindow
{
  
  Q_OBJECT
  
public:

  MainWindow();
  ~MainWindow();

public slots:
  
  // display the new game wizard
  void		makeNewGameWizard();
  void		makeNewGameSlo();

private:
  
  bool		oneGameStarted;

  void		createActions();
  void		createMenus();
  void		createGameDocks();
  void		createTabSet();
  void		createGameToolBar();

  // game core
  GameCore	gameCore;

  // main menu
  QMenu		*gameMenu;
  QMenu		*viewMenu;
  QMenu		*optionMenu;
  // menu actions
  // game menu:
  QAction	*gameNewGameAct;
  QAction	*gameExitAct;
  QAction	*gameOpenAct;
  QAction	*gameSaveAct;
  // view menu:
  QAction	*viewGalaxyAct;
  QAction	*viewSystemAct;
  QAction	*viewPlanetAct;
  QAction	*viewScienceAct;
  QAction	*viewDiplomacyAct;
  
  //
  NewGameWizard	newGameWizard;
  DockCommands	dockCommands;
  TabSet	tabSet;
  GameToolBar	gameToolBar;
  //
  GameParams	*gameParams;
  
  
};

#endif
